Skip to content

feat: уведомления администраторам о запросах подключения сайта - #803

Merged
TThanos3000 merged 1 commit into
devfrom
feat/dev-registration-request-notifications-20261020
Oct 20, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feat/dev-registration-request-notifications-20261020

Conversation

@TThanos3000

Copy link
Copy Markdown
Collaborator

Что изменено

Запрос подключения сайта мероприятия теперь создает личное уведомление и письмо каждому активному администратору платформы (is_staff/is_superuser). Письмо содержит программу, сайт, автора, комментарий, контакт и ссылку на карточку запроса. Идентичная повторная отправка не создает дублей; измененные детали сохраняются новой версией.

Реализация и API

Долговечные снимки и личные уведомления сохраняются в одной транзакции. Почта запускается после commit, защищена row-lock/emailed_at, ограничена четырьмя попытками; beat восстанавливает queued после сбоя брокера. Отзыв прав проверяется перед доставкой и чтением. Новые /core/notifications/ и /core/notifications/{kind:pk}/read/ объединяют существующие уведомления экспертов с запросами; старый API сохранен.

Данные, права и UI

Миграция0027 добавляет две таблицы без изменения существующих записей и рассылки старых запросов. Создание по прежнему managed_program, чтение только получателем с текущими административными правами. Existing Angular notification list используется в отдельном совместимом frontend PR. Production вне задачи.

Проверка

51 focused PostgreSQL-тест прошел: запись после commit, rollback, права/чужие ID, оба вида уведомлений, legacy API, повторы и параллельные запросы/worker, SMTP/broker recovery и отсутствие получателей. Flake8 и makemigrations --check прошли; полные CI и PostgreSQL CI должны пройти на точном HEAD перед обычным merge в dev. Реальная почта и пользователи при QA не используются.

@TThanos3000
TThanos3000 merged commit 8e29741 into dev Oct 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants